
/*
*Released on 28th June 2008.
*Any violations can be reported at paritosh@wikiocean.net
*What is treated as violations can be found at www.wikiocean.net/ppl1-voilations*
******************************************************************************
* The contents of this file are subject to POOL Public License 1.0 and later.
* POOL Public License is based on Affero GPL v3 and additional conditions.
* ("License"); You may not use this file except in compliance with the License
* You may obtain a copy of the Affero GPL v3 License at http://www.gnu.org/licenses/agpl.html
* You may obtain a copy of the POOL Public License 1.0 or later at www.wikiocean.net/license/ppl.html
* Software distributed under POOL Public License 1.0 is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.
* The Initial Developer of the Original Code is Paritosh Pungaliya (C) 2008. All Rights Reserved.
******************************************************************************
* Objective of the additional terms (license)
* 1) Is to extend the software freedom to freedom to work.
* 2) To ensure that knowledge is free from monopoly of agencies.
* 3) To avoid a situation where big corporate or investor can buy out free software groups and companies and then start milking the communities built around it.
* (this trend can be seen how the freedom is curtailed in companies that get Venture Capital funding.)
******************************************************************************
*/

package  Registration;


import java.io.RandomAccessFile;
import java.sql.*;

import logger.PoolLogger;

import utility.SplitString;

public class DefaultSupString 
{
	String Filename = "ItemList_Cat_B.csv";
	String path = "D:\\Cdrive\\C-DRIVE\\Register\\Final\\";
	
	String Filename1 = "itemWithShortNameB.csv";
	String path1 = "D:\\Cdrive\\C-DRIVE\\Register\\Final\\";
	
	String sqlTable = "master_table";
	ResultSet rs;
	DefaultSupString dss;
	String supstr;
	
	RandomAccessFile random;
	RandomAccessFile rftowrite;
	SplitString split = new SplitString();
	PoolLogger pl;
	
	public DefaultSupString() {
		// logger
		pl = (PoolLogger) PoolLogger.getLogger(this.getClass().getName());
	}
	
	void itemaspv()
	{
		dss = new DefaultSupString();
				
		try
		{
			random = new RandomAccessFile(path+Filename,"r");
			String src = random.readLine();
			StringBuffer sbr = new StringBuffer();
			sbr.append(writecsv(src,"SHORT_NAME"));
			while((src=random.readLine() )!= null)
			{
				try 
				{
					String record[] = src.split("\t");
					System.out.println("Item name : "+record[0]);
										
					String sstocsv = dss.getSupplierString(record[0]);
					sbr.append(writecsv(src,sstocsv));
					
				} 
				catch (NullPointerException npe) 
				{
					npe.printStackTrace();
				}
			}
			
			rftowrite = new RandomAccessFile (path1+Filename1,"rw");
			rftowrite.writeBytes(sbr.toString());
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
		
	}
		
	String getSupplierString(String itemname)
	{
		try
		{
			int size = 4;
			while (itemname.length()>20)
			{
				/*
				supstr = itemname.substring(0, 10);
				if ((tempstr[tempstr.length-2].length()+tempstr[tempstr.length-1].length())>10)
				{
					String templine = (tempstr[tempstr.length-2]+tempstr[tempstr.length-1]);
					supstr = supstr+" "+templine.substring(templine.length()-7,templine.length());
				}
				else
				{
					supstr = supstr+" "+tempstr[tempstr.length-2]+" "+tempstr[tempstr.length-1];
				}
				*/
				String[] splitRecord = split.split(itemname, " ");
				for(int i=splitRecord.length-1;i>=0;i--)
				{
					if(splitRecord[i].trim().length()==0)
						splitRecord[i] = "";
					if(splitRecord[i].length()>size-1)
						splitRecord[i] = splitRecord[i].trim().substring(0,size);
					String message = checkLegth(splitRecord);
					if(message.equals("error")==false)
						return message;
				}
				itemname = "";
				for(int i=splitRecord.length-1;i>=0;i--)
					itemname = itemname+ splitRecord[i]+" ";
				size--;
			}
			System.out.println("Supplier String : "+supstr+"\n");
			pl.info("Supplier String : "+supstr+"\n");
			pl.debug("Supplier String : "+supstr+"\n");
			pl.warn("Supplier String : "+supstr+"\n");
			pl.fatal("Supplier String : "+supstr+"\n");
			pl.error("Supplier String : "+supstr+"\n");
			pl.trace("Supplier String : "+supstr+"\n");
		}
		catch(Exception npe)
		{
			npe.printStackTrace();
		}
		return itemname;
	}
	
	String checkLegth(String[] splitRecord) 
	{
		String message ="";
		for(int i=0;i<splitRecord.length;i++)
		{
			if(splitRecord[i].trim().length()==0)
				splitRecord[i] = "";
			 message = message+splitRecord[i].trim()+" ";
			 if(message.length()>20)
				 return "error";
		}
		return message;
	}

	String writecsv(String itemname, String ss)
	{
		try
		{
			return itemname+"\t"+ss+"\n";
		}
		catch (Exception e)
		{
			e.printStackTrace();
			return "";
		}
	}
	

	public static void main(String[] args) 
	{
		DefaultSupString dss1 = new DefaultSupString();
		dss1.itemaspv();
	}
}